package com.aurora.app.component;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;

import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.WebSocketSession;

import com.alibaba.fastjson.JSON;

/**
 * websocketsession管理类
 * 
 * @author win64
 *
 */

public class SocketSessionManagerImpl {
//	/**
//	 * userid - session 维护用户和session实例的关系
//	 */
//	public static final ConcurrentMap<String, WebSocketSession> userSocketSessionMap;
//	/**
//	 * sessionid - userid 维护session与用户的关系
//	 */
//	private static final ConcurrentMap<String, String> sessionIdUserIdMap;
//	/**
//	 * sessionid - 和哪个用户在使用
//	 */
//	private static final ConcurrentMap<String, String> sessionStatusMap;
//
//	static {
//		userSocketSessionMap = new ConcurrentHashMap<String, WebSocketSession>();
//		sessionIdUserIdMap = new ConcurrentHashMap<String, String>();
//		sessionStatusMap = new ConcurrentHashMap<String, String>();
//	}
//
//	/**
//	 * 存在则覆盖，不存在就新增
//	 * 
//	 * @param userId
//	 */
//	public void addUserSocket(String userId, WebSocketSession session) {
//		sessionIdUserIdMap.put(session.getId(), userId);
//		userSocketSessionMap.put(userId, session);
//	}
//
//	/**
//	 * 获取session
//	 * 
//	 * @param userId
//	 * @return
//	 */
//	public WebSocketSession getSession(String userId) {
//		return userSocketSessionMap.get(userId);
//	}
//
//	/**
//	 * 移除列表
//	 * 
//	 * @param session
//	 */
//	public void remove(WebSocketSession session) {
//		String uid = sessionIdUserIdMap.get(session.getId());
//		if (uid != null) {
//			userSocketSessionMap.remove(uid);
//			sessionIdUserIdMap.remove(session.getId());
//		}
//	}
//
//	/**
//	 * 添加物品聊天占用
//	 * 
//	 * @param sessionId
//	 * @param userId
//	 */
//	public void addOccupy(String sessionId, String userId,String thingId) {
//		System.out.println("*********************add***Occupy***************"+sessionId);
//		Map<String,String> map = new HashMap<String,String>();
//		map.put("userId", userId);
//		map.put("thingId", thingId);
//		sessionStatusMap.put(sessionId, JSON.toJSONString(map));
//
//	}
//
//	/**
//	 * 判断改用户角度物品聊天 session是否占用
//	 * 
//	 * @param sessionId
//	 * @return
//	 */
//	public Boolean isOccupy(String sessionId, String userId,String thingId) {
//		if (sessionStatusMap.get(sessionId) != null) {
//			JSONObject jsonObject;
//			try {
//				jsonObject = new JSONObject(sessionStatusMap.get(sessionId));
//				if (jsonObject.getString("userId").equals(userId)&&jsonObject.getString("thingId").equals(thingId)) {
//					return false;
//				} else {
//					return true;
//				}
//			} catch (JSONException e) {
//				return true;
//			}
//		} else {
//			return false;
//		}
//	}
}
